package com.scrx.ymg.service.seckill;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.scrx.ymg.entity.BodyCount;
import com.scrx.ymg.entity.OrderForm;
import com.scrx.ymg.entity.OtherInfo;
import com.scrx.ymg.entity.OtherMoney;
import com.scrx.ymg.entity.SeckillProduct;

public interface ISeckillService {
	
	/**
	 * 得到秒杀商品集合
	 * @return
	 */
	public List<SeckillProduct> getSeckillList(int agentID);
	
	/**
	 * 得到秒杀商品集合
	 * @return
	 */
	public SeckillProduct getSeckillOne(int id);
    
	/**
	 * 根据秒杀商品id和用户id生成秒杀订单
	 * @param seckillID
	 * @param userID
	 * @return
	 */
	public String createSeckillOrderForm(int seckillID, int userID,int num,int typeId);
    /**
     * 根据用户id查询秒杀商品
     * @param userID
     * @return
     */
	public String getSeckillOrderForm(int userID,int productId);
	/**
	 * 根据id得到异业商家
	 * @param id
	 * @return
	 */
	public OtherInfo getOtherInfoById(Integer id);
    
	
	/**
	 * 新建秒杀广告
	 * @param product
	 * @return
	 */
	public String insertSeckillOne(SeckillProduct product,MultipartFile productFile,MultipartFile publicityFile,MultipartFile detailFile);
    
	
	/**
	 * 修改秒杀广告
	 * @param product
	 * @return
	 */
	public String updateSeckillOne(SeckillProduct product,MultipartFile productFile,MultipartFile publicityFile,MultipartFile detailFile);
    
	/**
	 * 删除秒杀广告
	 * @param product
	 * @return
	 */
	public String deleteSeckillOne(SeckillProduct product);
    
	/**
	 * 查询秒杀广告
	 * @param product
	 * @param pageNum
	 * @param pageCount
	 * @return
	 */
	public Map<Object, Object> selectSeckillProductList(SeckillProduct product, int pageNum, int pageCount,String startTime,String endTime);
    
	
	/**
	 * 得到异业商家
	 * @param info
	 * @return
	 */
	public List<OtherInfo> getOtherInfo(OtherInfo info);
    
	/**
	 * 上架团购商品
	 * @param product
	 * @return
	 */
	public String putawaySeckillProduct(SeckillProduct product);
    /**
     * 秒杀广告申请
     * @param product
     * @return
     */
	public String applyCheckSeckillProduct(String orderNum);
    
	/**
	 * 核销验证
	 * @param order
	 * @return
	 */
	public String verificationCode(OrderForm order);
    
	/**
	 * 修改账号密码
	 * @param info
	 * @return
	 */
	public String updateOtherInfo(OtherInfo info,String oldPassWord, String newPassWord);
    
	/**
	 * 得到异业商家营业额
	 * @param otherId
	 * @return
	 */
	public OtherMoney getOtherMoney(int otherId);
    

    
	/**
	 * 根据邮政编码和团购分类得到团购商品
	 * @param product
	 * @param postId
	 * @param pageNum
	 * @param pageCount
	 * @return
	 */
	public Map<Object, Object> getSeckillProductByAgent(SeckillProduct product, String postId, int pageNum, int pageCount);
    
	/**
	 * 根据代理区域编码得到秒杀商品集合
	 * @param postalcode
	 * @return
	 */
	public List<SeckillProduct> getSeckillListByPostalcode(String postId);

	public void insertbodyCount(BodyCount bodyCount);
    
	
	/**
	 * 团购微信支付生成订单
	 * @param goods_id
	 * @param userId
	 * @param quantity
	 * @param typeId
	 * @return
	 */
	public String createSeckillOrderForm(String out_trade_no, int seckillID, int userID, int num,
			int typeId);
    
	/**
	 * 更新秒杀广告/团购商品状态
	 * @param seckillId
	 * @param status
	 * @return
	 */
	public String checkAdById(int seckillId, int status);
     
	
	/**
	 * 得到异业商家分页
	 * @param info
	 * @param pageNum
	 * @param pageCount
	 * @return
	 */
	public Map<Object, Object> getOtherInfo(OtherInfo info, int pageNum, int pageCount);
    
	
	/**
	 * 更新异业商家
	 * @param other
	 * @return
	 */
	public String checkOtherInfo(OtherInfo other);
    
	/**
	 * 删除异业商家
	 * @param other
	 * @return
	 */
	public String deleteOtherInfo(OtherInfo other);
  
	/**
	 * 更新异业商家
	 * @param other
	 * @return
	 */
	public String updateOtherInfoByStatus(OtherInfo other);
    
	
	/**
	 * 保存秒杀广告
	 * @param seckill
	 */
	public String saveSeckill(SeckillProduct seckill);
    
	/**
	 * 更新秒杀广告
	 * @param seckill
	 */
	public String updateSeckillProduct(SeckillProduct seckill);
	
	/**
	 * 更新秒杀广告
	 * @param seckill
	 * @return
	 */
	public String updateSeckillProductAD(String thisTime);


}
